不使用Newtonsoft.Json,改採.net6內建的System.Text.Json
System.Text.Json更著重在效能與安全性,大多數人應該都跟我一樣只會使用基本的序列化及反序列化。
同步更新於個人部落格
System.Text.Json序列化範例
選擇ASP.NET Core Web API專案範本,並執行下一步
命名你的專案名稱,並選擇專案要存放的位置。
直接進行下一步
將預設的API註解,寫入新的Action,預設不會引用System.Text.Json,記得在最上面using
/// <summary>
/// 序列化
/// </summary>
/// <returns></returns>
[HttpGet("JsonSerialize")]
public ActionResult JsonSerialize() {
var Test = new TestClass() {
Name = "中文名",
Age = 18
};
var Result = JsonSerializer.Serialize(Test);
return Ok(Result);
}
/// <summary>
/// 反序列化
/// </summary>
/// <returns></returns>
[HttpGet("JsonDeserialize")]
public ActionResult JsonDeserialize() {
var jsonString = @"{""Name"":""中文名"",""Age"":18}";
var Result = JsonSerializer.Deserialize<TestClass>(jsonString);
return Ok(Result);
}
public class TestClass {
public string Name { get; set; }
public int Age { get; set; }
}
在不做任何設定的情況下,內建的序列化會有些微差異
使用ActionResult中的JsonResult回傳時會將開頭改為小寫
兩個問題都會在另一個章節補充說明
Compare Newtonsoft.Json to System.Text.Json, and migrate to System.Text.Json
我就是升3.1時,想說改用個Text.Json遇到那該死的unicode問題
估狗查了說在startup.cs加上某一串字後就可以~ 不過我嘗試都無效
只好繼續Newtonsoft.Json
可以參考下一篇解決這個問題唷
看囉~~~~ 範例是單一設置
我原本想一勞永逸 設定全部都不轉Unicode 不過失敗XD